package com.woniuxy.hrp.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.woniuxy.hrp.entity.*;
import org.springframework.web.bind.annotation.PathVariable;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

public interface DoctorService extends IService<Doctor> {
    public int preAppoint(int id,String datetime);
    public List<Doctor> seleByCon(Doctor doctor);

    /**
     *@Description 医生功能：根据id查询个人信息
     *@Author TJ
     *@Version 1.0
     **/
    Doctor selectByDoctorId(int id);

    /**
     *@Description 医生功能：修改个人密码
     *@Author TJ
     *@Version 1.0
     **/
    void updatePassword(int id,String password);

    /**
     *@Description 医生功能：修改预约状态
     *@Author TJ
     *@Version 1.0
     **/
     void updateStatus(int id);

    /**
     *@Description 医生功能：查询出所有的预约信息(包含时间排序)
     *@Author TJ
     *@Version 1.0
     **/
    Doctor findByIdOrderByTime(int id);

    /**
     *@Description 管理员功能：注册医生
     *@Author TJ
     *@Version 1.0
     **/
    void add(Doctor doctor);

    /**
     *@Description 管理员功能：（逻辑）删除医生
     *@Author TJ
     *@Version 1.0
     **/
    void delete(int id);

    /**
     *@Description 管理员功能：根据id认证医生帐号（默认为未认证：n)
     *@Author TJ
     *@Version 1.0
     **/
    void authById(int id);

    /**
     *@Description 管理员功能：动态修改指定id的医生信息(姓名、帐号、状态不能修改）
     *@Author TJ
     *@Version 1.0
     **/
    void update(Doctor doctor);

    /**
     *@Description 管理员功能：所有医生数据集合
     *@Author TJ
     *@Version 1.0
     **/
    List<Doctor> selectAll();

    /**
     *@Description 管理员功能：根据条件查询医生信息
     *@Author TJ
     *@Version 1.0
     **/
    List<Doctor> selectByCondition(Doctor doctor);

    Doctor getArrangeTimeById(int id);

    /***
     * @description: 医生登录
     * @param: 账号密码
     * @return: com.woniuxy.hrp.entity.Doctor
     * @author Lrw
     * @date: 2022/8/31 10:48
     */
    Doctor login(String account,String password);

    /**
     *@Description
     *@Author TJ
     *@Version 1.0
     **/
    PageBean<Doctor> getByPage(int current,int limit);
    /**
     * @Author  李国杰
     * @Description //获取部门和职位
     * @Date 11:38 2022/9/3
     * @Param
     * @return
     **/
    public  Doctor getDPById(int id );

    /**
     * 根据医生id获取其病人信息
     * @param id
     * @return
     */
    Doctor getPatientByDoctorId( int id);

    /**
     *@Description 根据患者id增加患者药品和数量
     *@Author TJ
     *@Version 1.0
     **/
    void addPatientMedicine(DoctorPatientMedicine doctorPatientMedicine);
}
